New systems and applications that require data communication need increasingly greater bandwidth and higher rates of transmission. Data compression is one approach to providing these improvements. Data compression reduces data storage space and necessary transmission bandwidth by using a compression protocol to eliminate unnecessary or redundant information. Compressed data makes available more bandwidth and can be transmitted more quickly. Data is decompressed after transmission using the same compression protocol to ensure accuracy of the transmission. Known methods of data compression, however, have not included highly compressible control information in the compressed data.
Data moves from one computer system to another by moving “down” through a series of layers in the first system, through a network medium, and “up” through a corresponding series of layers in the second system. The Open Systems Interconnection (OSI) reference model defines seven layers of a computer system. The upper three layers, the application, presentation, and session layers, handle application issues and are generally implemented only in software. The lower four layers, the transport, network, data link, and physical layers, handle data transport issues and are generally implemented in both hardware and software. Control information, which typically takes the form of a header, directs how data moves from one computer system to another computer system. Each layer of the first computer system adds control information to data passed down from upper layers. For example, an upper layer prepends control information to data. The resulting information unit, containing control information and data, is passed down to a lower layer. The lower layer treats the whole information unit as data, and prepends its own control information. The information unit grows as each layer prepends its own control information. Additionally, each layer of the second computer system removes control information from data passed up from lower layers. For example, a lower layer in the second system receives the information unit and retrieves the control information prepended by the corresponding layer in the first system. The control information is removed, and the remainder of the information unit is passed to an upper layer.
Control information is generally highly compressible because it often contains repeated characters. The control information of a lower layer, however, cannot be compressed by an upper layer, because the information of the lower layer is not available at the upper layer. Moreover, the lower layer needs to be able to identify a common compression protocol that the first system can use to compress the data and the second system can use to decompress the data, to ensure accurate data transmission. Known methods and systems of data communication, however, have not been completely satisfactory in providing a system and method for conducting lower layer compression and for identifying a common compression protocol. Therefore, a need has arisen for a new method and system for data communication.